Clientproject semester 2

Clientproject semester 2

Airlock Continuation

The project Airlock is an arena fighting game with the goal of your player knocking every other player in the match off the map and being the last standing in a free-for-all-like game mode. Use your fists and the items scattered around the arena to attack other players to systematically knock them back, aiming for the main doors of the airlocks with enough impacts, causing the doors to break away, triggering an Airlock breach, sucking the players across the areans towards the outside space requiring the players skill and luck to prevent being sucked out which would end up eliminating them. After a certain amount of time, if there is still more than one player standing, the winner can then be decided by a race which opens up below the arena, taking skilful movement to manoeuvre the shortest route down, with whoever first presses the button at the end winning the match.

Introduction

The goal of this group project was to work upon the previous foundation created in the first semester and further polish the game within 7-8 weeks to a high-fidelity product so the client can actively test their ideas to figure out the potential and what works or doesn't whilst also building from the ideas or critiques proposed by the client during the process. The project was undertaken with a group of 5 people, including myself, with my role as the only coder within the group and the rest split 2-2 between game designers and designers. At the start of the project, the client helped significantly by having written down a critique on our previously submitted work pointing out what needed to be worked on further and what they wanted to see with an emphasis towards sorting out our art direction and this time submitting a more polished product with actual in game models rendered within the game space as well as a slight push for further mechanics and work towards making existing ones smoother to use.

The software used by the group for this project included Blender, Unity, Substance-Painter, Visual-Studio Code, Discord for communication, Fusion36, and GitHub to share the work done on the same Unity project between the group, allowing us to all be on the same basis for the project and help compile our work together in one source.

Pre-Production

The research for this client project was split into 3 stages, one being an overview of all important new mechanics that were planned to be included, and how I envisioned them functioning in-game. As well as at the beginning, outlining what the client wanted, our ideas on improving the base concept, the production cycle, and reaffirming the target audience to see if anything needed to be changed and tweaked to better fit the audience. There was also a brainstorming activity between the group members to further flesh out individual ideas on the game and add further ideas on top.

-Fig(2) Group-Work
-Fig(3) Group-Work

For the first stage of pre-production, we utilised the double diamond design process made popular by the British Design Council to be able to have a structured framework to identify and troubleshoot our production cycle, understanding the tasks as well as the target audience and their age range. Balancing it all with the client's needs. Utilising this activity, the group managed to narrow down the target audience to casual gamers between the age range of 12-30, with the client referencing games such as Smash Bros and Brawlhalla being a similar concept to what they envision, as well as competitors in the market.

-Fig(4) Group-Work
-Fig(5) Group-Work
-Fig(6) Group-Work
-Fig(7) Group-Work
-Fig(8) King.D, Peters.D

he second stage of pre-production is a brainstorming activity to further build upon individual ideas for the project as well as to improve group cohesion and better the later work as a group according to (Paulus, P. B. and Nijstad, B. A. 2003) , to polish them to be viable when attempting to implement them in the later stages of development with every group memeber at the start being given a blank piece of paper where they can write any ideas they have within their specialities onto it. Afterwards, passing the paper to the teammate on the left to let them further develop the idea or write down anything they want to include and so on, this happens until the paper reaches back to the person who wrote the initial ideas onto it. In the end, it helps the initial rough idea become developed enough to accurately be worked on during the development process. For example 1. Grapple hook 2. Use it to get closer to your opponent 3. Or drag items closer/away from the opponent 4. Hook onto floor to survive breach event. As well as a mind map to fully map out the work that needed to be done to successfully improve the project to our desired outcome, dividing and collecting them into their related specialities like code and 3D design.

-Fig(9) King.D
-Fig(10) King.D
-Fig(11) King.D
-Fig(12) King.D

The third stage was further developing and visualising my ideas for the mechanics and code of the game, utilising storyboards to convey the actions that happen in-game while describing in text what is needed for that to happen and work properly.

Brand Guidelines

A presentation was created to identify the branding and its constraints for the project, for example, the colour palette all media for the project would follow, be it posters, UI and in-game assets. Defining the overall aesthetic and themality of the project throughout everything that will be done.

-Fig(13) King.D, Peters.D
-Fig(14) King.D
-Fig(15) King.D
-Fig(16) King.D
-Fig(17) King.D
-Fig(18) King.D
-Fig(19) Lund.O
-Fig(20) Lund.O

Timeline

A timeline was created to try and keep pace with the tasks that the group needed to do at each stage to be able to meet deadlines.

-Fig(21) King.D

Teamworking and Communications

The group mainly used Discord to communicate and share work, with some utilisation of Google Drive to collect the work together before sending it, making it more manageable and easier to locate.

-Fig(22) Group Work

Github was occasionally used by me to backup changes done to the game, in case of accidents where I need to roll back to a previous state.

-Fig(23) Group Work

Trello was used at the start to assign the first load of work between the group.

-Fig(24) Group Work

There were tasks assigned to each individual within the group on Discord to make sure everyone understood what they needed to do for the project, initially with it being updated throughout the project with new ideas and features.

-Fig(25) Group Work

SDG 8

By doing a client project for an indie development company, if greenlit further, it could allow more people within the game design and development field to get employment as the company would require more hands to be able to work on two projects simultaneously, helping economic growth as more people would be in employment earning money and by extension also spending it at local businesses.

Code production

Pause and Settings menus

-Fig(26) King.D
-Fig(27) King.D

A system to be able to toggle and untoggle the pause menu by pressing escape on the keyboard, with the game pausing in the background when it appears. Through the use of the pause menu, the player can select different actions, mainly returning to the game, quitting the game and the settings menu, where, in the fully developed version of the game, you would be able to adjust settings such as the volume to adjust the gaming experience to your preference.

Bear Trap

-Fig(28) King.D
-Fig(29) King.D

An item that, once a player steps into it, disables that specific player's movement abilities, stopping them dead in place for a short period, leaving them vulnerable to attacks, however, keeping them rooted in place in cases of an Airlock breach.

This is achieved through the use of a taller capsule trigger located in the centre of the asset, which, on trigger, figures out what player stepped into it and gets their movement script to trigger a “Freeze” event that sets the player speed to zero and stops the use of movement abilities. After a certain amount of time, the bear trap resets the player movement script and destroys itself from the game scene.

Grapple-Hook

-Fig(30) King.D
-Fig(31) King.D

Shoots a line out of the front of the grapple gun a specified distance, latching onto the nearest grappable object or wall in that direction. When attached, it flings the player towards the destination in an arc, releasing when the player arrives at the end of the line. If the grapple line is not in range to attach to anything, it returns with nothing else happening.

When the grapple gun is picked up, the script identifies it using tags and accesses its unique functionality. While held, it waits for input; once triggered, the gun fires a linecast from its front (an empty game object) forward. If it hits an object with the "grappable" layer, it calculates the force and path needed to reach the target. After reaching the endpoint or timing out, it resets and deactivates the linecast.

Item throw/pickup

-Fig(32) King.D
-Fig(33) King.D

Enables the player to pick up a singular object at a time when in collision with an item when pressing the input action of F, which you could press again to drop the item you are holding. While an item is held, it allows the player to press X to throw the object out of their hand in a straight path in the direction they are facing, and if the object collides with another player, it deals some knockback to them.

Platform hang

-Fig(34) King.D
-Fig(35) King.D

When level with a platform, you can press E to attach yourself to the side of the platform and move along with it until the jump is pressed again, allowing you to hop onto the platform if you have an extra jump or the duration of the action runs out, causing you to fall. As well as the platforms also been scripted to automatically moving when the match begins at a randomly chosen speed.

When pressing E, the player shoots out two raycasts forming an L facing towards the player mode, with the corner being the point of detection, checking to see if it hits anything tagged with “Ledge”. If so, transforming the player's positions and rotation to match the platforms, as well as setting the player's parent to the platform to move with it.

Polished fighting system

-Fig(36) King.D
-Fig(37) King.D

Blocking now requires being on the ground before being able to act, whilst in the air can't be activated, and if already active, it is disabled.

Better item spawning

-Fig(38) King.D
-Fig(39) King.D

The items now randomly spawn within a specified range across the stage, spanning the full length and being set to the top of the stage to instead of from closer to the ground.

Unique weapon damage and range

-Fig(40) King.D
-Fig(41) King.D

When picking up a weapon, its durability script has a float specifying the weapon's damage and attack range that can be changed in the inspector. When picking up the item, the attacking script links to the durability script and uses that float as the damage/knockback to be applied to the enemy in the attack while it is held and takes the attack range when figuring out the hitbox size for the item.

Handover Documentation

And an email to our client including a zip of the full finished Unity project as well as a previous version.

A look at the finished game running

Reflection

In conclusion, the group produced a high-fidelity, functional game snippet that was well-received by the client. While there were some issues, such as high-poly assets and improperly formatted UI elements not making it into the final build, the project successfully built on previous work by refining mechanics and solidifying the art direction. This version included most visual elements, resulting in a high-fidelity finished result, with client feedback being largely positive. The main challenges were related to inconsistent contributions and the quality of work from some group members.

The project helped develop both hard and soft skills, with hard skills improving leaps and bounds compared to the start of the project, as it required me to learn new and better coding practices during the project to realistically implement my ideas for mechanics and game features. With soft skills such as project management and problem solving, developing throughout the duration to better lead the group and get others working, whilst also trying to figure out what I would have to do or change to implement code.

The things that would have been done differently if redo this project again would be to try and communicate with the client more to further refine the group's ideas and to see if there is anything else they would want to include or tweak about the ideas, as well as being more active in making sure other members of the group were doing the work assigned to them in timely fashion or at the expected quality so there could of been more usable assets in the end to be able to include in the game.

If this project were to be continued, my next steps would be to further polish the code to make the game run smoother and fix some bugs within the game, like the grappling hook sometimes firing off into the sky. Along with a suggestion from the client themselves to create AI opponents able to fight against players independently, with their movement and attacks without needing any player input.

References

  • Risk of Rain 2 (2020)Playstation, XBox, PC, Nintendo Switch[Videogame].Texas: Gearbox Software.
  • Gang Beasts(2017) Playstation, XBox, PC, Nintendo Switch[Videogame].San Francisco: Double Fine Productions.
  • Super Smash Bros Ultimate(2018)Nintendo Switch[Videogame].Kyoto: Nintendo.
  • Unity Discussions(2024)Welcome to Unity Discussions. Avalible at: https://discussions.unity.com[Accessed Novermber 20th - January 4th 2024-2025]
  • stack overflow(2008)Main menu. Avalible at: https://stackoverflow.com[Accessed Novermber 20th - January 4th 2024-2025]
  • Stick fight: the game(2017) PlayStation, Xbox, PC, Nintendo Switch[Videogame].Stockholm: LandFall Games.
  • DaFont(2015)Download Fonts. Available at: https://www.dafont.com [Accessed March 14th 2025]
  • Paulus, P. B. and Nijstad, B. A. (2003) Group creativity: Innovation through collaboration. Oxford: Oxford University Press.